﻿/*
 * Application.InstallStateChanged - 浏览器外运行的相关状态发生改变时所触发的事件
 * Application.InstallState - 浏览器外运行的相关状态 [System.Windows.InstallState 枚举]
 *     NotInstalled - 在浏览器中运行
 *     Installing - 安装到桌面中
 *     Installed - 在浏览器外运行
 *     InstallFailed - 安装到桌面的过程中发生错误
 * Application.IsRunningOutOfBrowser - 当前程序是否是从浏览器外启动的
 * Application.Install() - 安装 Silverlight 程序到浏览器外（卸载只能通过右键菜单的方式卸载）
 * Application.CheckAndDownloadUpdateAsync, Application.CheckAndDownloadUpdateCompleted - 一对异步方法/事件，用于更新浏览器外运行的 Silverlight 程序（从服务器上下载新的版本）
 * 
 * 注：在 Silverlight 项目上单击右键 -> 属性 -> Out-of-Browser Settings 可以对“浏览器外运行”的相关参数做设置（也可以手动修改 Properties/OutOfBrowserSettings.xml）
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;

namespace Sl.OperatorUnitManagement.MainPageControl
{
    public partial class OutOfBrowser : Page
    {
        public OutOfBrowser()
        {
            InitializeComponent();

            this.button.Click += new RoutedEventHandler(button_Click);
            this.Loaded += new RoutedEventHandler(OutOfBrowser_Loaded);
        }

      

        void OutOfBrowser_Loaded(object sender, RoutedEventArgs e)
        {
            InitButton();

            App.Current.InstallStateChanged += new EventHandler(Current_InstallStateChanged);
        }

        void Current_InstallStateChanged(object sender, EventArgs e)
        {
            InitButton();
        }

        private void InitButton()
        {
            if (App.Current.IsRunningOutOfBrowser)
            {
                button.Content = "卸载";
            }
            else
            {
                button.Content = "安装";
            }
        }

        void button_Click(object sender, RoutedEventArgs e)
        {
            if (!App.Current.IsRunningOutOfBrowser && App.Current.InstallState == InstallState.NotInstalled)
            {
                App.Current.Install();
            }
            else
            {
                MessageBox.Show("请右键卸载");
            }
        }

        // 当用户导航到此页面时执行。
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

    }
}
